import { apiList } from "@/api/apiList";
function useCommon(params) {

  let commonds = []

  let commonlayers = []

  let _layer = new Cesium.CustomDataSource('plotlayer')


  setTimeout(() => {
    // window.getViewerReady().then(res => {
    viewer.dataSources.add(_layer)
    // })
  }, 1000);

  function loadLinesearch(item) {
    // 添加镶嵌线
    apiList.getLineLiID(item.lineId).then((res) => {
      let geojson = JSON.parse(res.data.lineData);
      console.log(geojson);
      Cesium.GeoJsonDataSource.load(geojson, {
        stroke: Cesium.Color.HOTPINK,
        fill: Cesium.Color.fromAlpha(Cesium.Color.RED, 0.3),
        strokeWidth: 3,
      }).then((res) => {

        res.entities.values.map(item1 => {

          // console.log(item1);
          // let tmppos = item1.polygon.hierarchy._value.positions
          // item1.polygon.hierarchy = new Cesium.CallbackProperty(
          //   function () {
          //     // return item.polygon.hierarchy._value
          //     // console.log(item1);
          //     // console.log(item1.polygon.hierarchy.);
          //     // console.log(item1.polygon.hierarchy._value.positions);
          //     // console.log(item1.polygon.hierarchy._value.positions);
          //     console.log(new Cesium.PolygonHierarchy(tmppos));
          //     return new Cesium.PolygonHierarchy(tmppos);
          //   },
          //   false
          // );

          // item1.polygon.perPositionHeight = true
          // item1.polygon.height = 0
          // item1.polyline = {
          //   // positions: item1.polygon.hierarchy._value.positions,
          //   // positions: new Cesium.CallbackProperty(
          //   //   function () {
          //   //     return [...item1.polygon.hierarchy._value.positions]
          //   //   },
          //   //   false
          //   // ),
          //   // clampToGround: true,
          //   // zIndex: 10,
          //   // shadows: Cesium.ShadowMode.ENABLED,
          //   width: 1,
          //   material: Cesium.Color.BLUE.withAlpha(0.5),
          // }

          // setTimeout(() => {
          //   item1.polyline.positions = item1.polygon.hierarchy._value.positions
          // }, 1000);

          // item.polygon.hierarchy._value
          // console.log(item1);

        })

        viewer.dataSources.add(res);
        // viewer.flyTo(res);
        commonds.push(res)
      });
    });

    // let finalurl = `/api/mapServer/tile/${props.itemOptions.batchVersion}/{z}/{x}/{y}`;
    let finalurl = `/mapServer/tileBySearch/${item.lineVersion}/${item.captureDate}/{z}/{x}/{y}`;
    viewer.imageryLayers.addImageryProvider(
      new Cesium.UrlTemplateImageryProvider({
        url: finalurl,
        // rectangle: rect,
        //minimumLevel:0,
        //maximumLevel:18
      })
    );
  }
  function loadLine(item) {
    // 添加镶嵌线
    apiList.getLineLiID(item.lineId).then((res) => {
      let geojson = JSON.parse(res.data.lineData);
      console.log(geojson);
      Cesium.GeoJsonDataSource.load(geojson, {
        stroke: Cesium.Color.HOTPINK,
        fill: Cesium.Color.fromAlpha(Cesium.Color.RED, 0.3),
        strokeWidth: 3,
      }).then((res) => {

        res.entities.values.map(item1 => {

          // console.log(item1);
          // let tmppos = item1.polygon.hierarchy._value.positions
          // item1.polygon.hierarchy = new Cesium.CallbackProperty(
          //   function () {
          //     // return item.polygon.hierarchy._value
          //     // console.log(item1);
          //     // console.log(item1.polygon.hierarchy.);
          //     // console.log(item1.polygon.hierarchy._value.positions);
          //     // console.log(item1.polygon.hierarchy._value.positions);
          //     console.log(new Cesium.PolygonHierarchy(tmppos));
          //     return new Cesium.PolygonHierarchy(tmppos);
          //   },
          //   false
          // );

          // item1.polygon.perPositionHeight = true
          // item1.polygon.height = 0
          // item1.polyline = {
          //   // positions: item1.polygon.hierarchy._value.positions,
          //   // positions: new Cesium.CallbackProperty(
          //   //   function () {
          //   //     return [...item1.polygon.hierarchy._value.positions]
          //   //   },
          //   //   false
          //   // ),
          //   // clampToGround: true,
          //   // zIndex: 10,
          //   // shadows: Cesium.ShadowMode.ENABLED,
          //   width: 1,
          //   material: Cesium.Color.BLUE.withAlpha(0.5),
          // }

          // setTimeout(() => {
          //   item1.polyline.positions = item1.polygon.hierarchy._value.positions
          // }, 1000);

          // item.polygon.hierarchy._value
          // console.log(item1);

        })

        viewer.dataSources.add(res);
        // viewer.flyTo(res);
        commonds.push(res)
      });
    });

    // let finalurl = `/api/mapServer/tile/${props.itemOptions.batchVersion}/{z}/{x}/{y}`;
    // let finalurl = `/mapServer/tileBySearch/${item.lineVersion}/${item.captureDate}/{z}/{x}/{y}`;
    // viewer.imageryLayers.addImageryProvider(
    //   new Cesium.UrlTemplateImageryProvider({
    //     url: finalurl,
    //     // rectangle: rect,
    //     //minimumLevel:0,
    //     //maximumLevel:18
    //   })
    // );
  }

  function loadTif(id = '0976d3c7d9d55e3879764d3408929d3f') {
    let finalurl = `/api/mapServer/tile/${id}/{z}/{x}/{y}`;
    let tmplayer = viewer.imageryLayers.addImageryProvider(
      new Cesium.UrlTemplateImageryProvider({
        url: finalurl,
        // rectangle: rect,
        //minimumLevel:0,
        //maximumLevel:18
      })
    );
    commonlayers.push(tmplayer)
  }

  function loadXYZ(date, lineId) {
    removeAll()
    let finalurl = `/api/mapServer/time/${date}/${lineId}/{z}/{x}/{y}`;
    let tmplayer = viewer.imageryLayers.addImageryProvider(
      new Cesium.UrlTemplateImageryProvider({
        url: finalurl,
        // rectangle: rect,
        //minimumLevel:0,
        //maximumLevel:18
      })
    );
    commonlayers.push(tmplayer)
  }

  function loadGeojson(batchId = 1) {
    apiList.wapian.getLineData(batchId).then((res) => {
      console.log(res);
      res.data.map(item => {
        let geojson = JSON.parse(item.lineData)
        Cesium.GeoJsonDataSource.load(geojson, {
          stroke: Cesium.Color.HOTPINK,
          fill: Cesium.Color.fromAlpha(Cesium.Color.RED, 0.3),
          strokeWidth: 3,
        }).then((res1) => {
          console.log(res1);
          viewer.dataSources.add(res1);
          res1.entities.values[0]
          // viewer.flyTo(res);
          // commonds.push(res1)
        });
      })
    })
  }

  function removeAll(params) {

    commonlayers.map(item => {
      viewer.imageryLayers.remove(item)
    })
    commonlayers = []

    commonds.map(item => {
      viewer.dataSources.remove(item);
    })
    commonds = []

    _layer.entities.removeAll()

  }

  return {
    loadLine,
    loadLinesearch,
    loadTif,
    loadXYZ,
    loadGeojson,
    removeAll,
  }
}

export default useCommon